Information can be sent through networks in different ways. Packet switching is a method for sending information in a network in which nodes of the network share bandwidth with each other, the information being sent in small pieces in packets which include address information in addition to the information, each packet being individually routed through the network. Circuit switching is a method for sending information in a network in which a dedicated physical circuit path or channel is established between a sender and a receiver and is used for sending all of the information. The information can then be sent e.g. in dedicated slots included in successive frames.
Packet switching is more efficient for communicating information than circuit switching, in view of using the resources. On the average, a large number of connections can be supported over a given physical channel in a packet switched network. This transport efficiency can be enhanced by dividing the traffic into different priority classes. Then information having a high priority is sent before information, having a low priority. Furthermore, information is only sent through a packet switched network when there is some information to convey, whereas in a circuit switched network a channel is established for each connection and this channel remains until the connection is ended. For example for information transmitted in periodically repeated frames, a dedicated slot of all frames is always reserved for the connection. This means that, statistically, in a given traffic situations a packet switched network can support more connections. In a packed switched network for example ATM (Asynchronous Transfer Mode) and IP (Internet Protocol) can be used.
For a better use of the resources, some statistical aspects are currently applied to the resources or devices, which handle the traffic in circuit switched networks. Pooling of devices or resources is a method used in circuit-switched STM (Synchronous Transfer Mode) nodes of today. For example, speech coders in GSM (Global System of Mobile Communication) are not semi-permanently connected to transmission trunks, but rather allocated from a pool on a per call basis. Thus, a smaller number of coders can support a given number of trunks.
Some resources, e.g. echo cancellers or transcoders, use given amounts of calculations performed on media streams in the processing when performing the functions e.g. to achieve a better speech quality or a lower bit rates respectively. Other such resources are, for example, error coding permitting correction of transmission errors, channel coding, and interleaving as performed in radio base stations.
Speech quality has become an important factor in modern telephony. A number of connections have an inherent transmission delay that makes echo control necessary. Echo cancelling, which is a modern way of handling the echo problem is used extensively both in long distance terrestrial or satellite networks and in digital-cellular to public switched telephone network circuits (PSTNs). The design of the echo cancellers plays a vital role in the overall speech quality of telephony systems.
The article Anders Eriksson, Gunnar Eriksson, Johnny Karlsen, Anders Roxström and Teresa Vallon Hulth, “Ericsson echo cancellers—a key to improved speech quality”, Ericsson Market Communications, Ericsson Radio Systems AB, Sweden, 1996, which is incorporated by reference herein, contains a description of methods used in echo cancellers of today, which are shortly reviewed in the following.
Echoing in telephony takes place when speech is reflected back to the speaker as a distorted and delayed replica. The reflected speech energy is not a problem if the transmission path is short, but will appear as an echo with an increased delay according to the length of the transmission path. Another cause of echoing is acoustic cross talk between the loudspeaker and the microphone in a handset or in a loudspeaking telephone set.
Large delays are e.g. caused by the use of satellites for intercontinental calls. In digital cellular systems delays are caused by the speech and channel coding and decoding necessary used for transforming speech signals to the digital signal format used for radio transmission and for retrieving the speech signals from received digital signals.
The phenomenon of echoing can be handled by employing echo cancellers. In digital cellular applications, these devices are located in mobile switching centers, MSCs, and in long distance telephony circuits, they are usually located in international switching centers, ISCs.
The principle of an echo canceller 100 is illustrated by the block diagram of FIG. 1. A replica of the echo existing in a signal Rin or Rout is obtained via a linear filter 102 and subtracted from the input signal Sin resulting in a signal Sb. In this signal there may be a residual echo signal, that, is further suppressed by a non-linear processor 104. Comfort noise is added as produced in comfort noise generator 106. By noise estimation, the noise existing in a call is estimated and seat during a call in non-talking situations, so that it would not be completely quiet during those moments. A hybrid circuit 108 converts a 4-wire connection to/from a 2-wire connection.
The linear filter 102 makes a replica, or estimate, using characteristics of the path producing the echo. Passing the input signal Sin through the filter generates an estimated echo signal that is subtracted from the input signal Sin to reduce the echo. A calculation algorithm performs the echo cancellation performed in the filter 102, so that after a given time it can evaluate the echo in a forward direction and send out the same echo so that the echo in the received signal can be suppressed. For this purpose, the echo canceller adapts the filter coefficients of the linear filter to the current echo path. Most state of the art echo cancellers use an adaptive filter with continuous updating the filter coefficients. The most widely used algorithm for adjusting the filter coefficients is the normalised least mean squares method, NLMS.
In many situations the echo reduction obtained by the linear filter is not sufficient. The output from the linear filtering part 102 is therefore passed to a non-linear processor. NLP 104, which further reduces the echo by blocking the residual echo signal, completely or partially, when it is dominated by a non-cancelled residual echo.
The linear filter 102 and the non-linear processor 104 are the two basic blocks in most echo cancellers. For good echo canceller performance of an echo canceller to be achieved, the operation of these two blocks must be governed by control circuits 110. The control circuits allow the linear filter 102 to produce a good estimate of the echo path. The control circuits are as to the non-linear processor 104 responsible for detecting the presence of a large or small amount of non-cancelled echo to be suppressed by the non-linear processor.
The design of the control logical circuits 110 for the adaptive filter 102 and the non-linear processor 104 has a large impact on the overall performance of an echo canceller. The most important part of the control circuits of an echo canceller is the part that secures a good echo attenuation throughout the call. The two parties of a telephone call are normally talking only one at a time, which means that times for updating the filter can easily found in order to have a good echo path estimate. Nevertheless, there are also situations when the parties are talking at the same time, referred to as double-talk situations. The adaptation of the filter 102 should then be inhibited, since otherwise an erroneous estimate of the echo path is obtained. These two cases can be discriminated by using a double-talk detector, which is a state machine based on comparisons of the power of the measurable signals.
Another part of the control logical circuits is the part, which controls the time when to activate the non-linear processor 104.
Thus, all the functions in an echo canceller, i.e. the functions of the non-linear processor 104, of the double talk detector etc., are not performed all the time, and thus different amounts of calculations are performed at different times. When a relatively large number of resources, such as echo cancellers, transcoders, channel coders etc. are used, it is very unlikely that all resources would need to make their maximum amounts of calculations at the same time. Still, there will be times when the total number of calculations attains an unsustainable level, for example in situations with a high traffic load. When this occurs, there is for the time being no other available solution in packet-switched networks than to drop one or several packets.
In general, over-dimensioning is not used if the calculation capacity is not used. The number of tasks per processor is evaluated by static means, i.e. the processor is always dimensioned for the worst load situation, which results in a poor average utilisation of the capacity of the processor.
If over-dimensioning is used, a common technique in packet-switched networks is to simply drop data packets during situations with a momentary high load, e.g. the technique used in IP routers of today.
In the published European patent application 0690603 a method for allocating resources in a call processing system is disclosed. The method includes allocating, for a new call, a level of resources depending on the available headroom in the system. The method allows using a less robust algorithm for the new call when the system load is heavy. One algorithm for each resource, or function, to be executed in the system is prioritised.
In U.S Pat. No. 5,628,013 a method is disclosed for determining whether there is enough processing time available within each frame to process the task such that the total processing time of the frame is not exceeded. This is done by first determining the processing time. A task is one or more processing modules. The processing time is calculated by adding the times for processing modules for a worst-case situation. A task-list includes the tasks which have already been installed and that will be executed within the frame. The various tasks are not related to each other.